package com.ftg.learn.chapter11;

import java.util.Arrays;

public class Test1 {

    /**
     * 得到数组中每一个数出现的次数（封装成公共方法）
     * ex: {1,2,1,2,3,4,5} 1出现2次2出现2次 3 出现1次...
     */
    public void yi(int[] arr){
        int sum;
        for(int i = 0;i<arr.length;i++){
            sum = 0;
            for(int j = 0;j<arr.length;j++){
                if(i == arr[j]){
                    sum++;
                }
            }
            System.out.println("数字"+i+"出现了"+sum+"次");
        }
    }

    /**
     * 判断数组中有几个不重复的数
     * （比如 2 2 3 3 5 有3个不重复的数 2 3 5）（封装成公共方法）
     */
    public void er(int[] arr){
        //排序
        Arrays.sort(arr);
        for(int i = 0;i< arr.length-1;i++){
            if(arr[i] != arr[i+1]){
                System.out.println("不重复的数有"+arr[i]);
            }
        }
        //判断最后一位数是否重复
        if(arr.length-1 != arr.length-2){
            System.out.println("不重复的数有"+arr[arr.length-1]);
        }
    }

    /**
     * 有n个人围成一圈，顺序排号。
     * 从第一个人开始报数（从1到3报数），凡报到3的人退出圈子，
     * 问最后留下的数原来第几号的那位。
     */
    public void san(){
        boolean[] arr =  new boolean[10];
        int s=0;//计数器
        //
        int no = 0;
        for(int i = 0;no < arr.length-1;i++) {
            if(arr[i] == false){
                s++;
            }
            if(s == 2){
                arr[i]=true;
                s = 0;
                no++;
            }
            if(i == arr.length - 1){
                i =0;
            }
        }
        //遍历最后活下来的人
        for(int i = 0;i<arr.length;i++){
            if(arr[i]==false) {
                System.out.print("最后活下的序号为"+i+"\t");
            }
        }
    }
}
